//
// Created by martin on 8/6/21.
//

#ifndef FTPSERVER2_0_TASKQUEUE_H
#define FTPSERVER2_0_TASKQUEUE_H

#include "task.h"
typedef Task ElemType;

#if 0
/**
 * 双向链表实现队列taskqueue
 */
typedef struct taskqueue {
    Task *head; // 头节点
    Task *tail; // 尾节点
    size_t size; // 节点个数
}TaskQueue;

TaskQueue *taskqueue_new();
void taskqueue_free(TaskQueue *q);
// 队列尾插入一个元素
int taskqueue_offer(TaskQueue *q, Task *task);
// 返回并移除队列的头
Task *taskqueue_poll(TaskQueue *q);
// 返回但不移除队列的头
Task *taskqueue_peek();

#endif



#endif //FTPSERVER2_0_TASKQUEUE_H
